package com.lfd.scheduled.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @项目名： spring-emq
 * @包名： com.lfd.scheduled.task
 * @文件名: ScheduledTasks
 * @创建者: liufudong@szyh-smart.com
 * @创建时间: 2024/10/1 22:16
 * @描述：
 */
@Slf4j
@Component
public class ScheduledTasks {
    long startTime = System.currentTimeMillis();

    // 每5*100秒执行一次任务
    @Scheduled(fixedRate = 5000*100)
    public void fixedRateTask() {
        long time = System.currentTimeMillis() - startTime;
        log.info("执行定时任务 fixedRateTask time:{}", time);
    }

    // 每天的固定时间执行任务，例如凌晨1点执行
    @Scheduled(cron = "0 0 1 * * ?")
    public void performDailyTask() {
        log.info("每天凌晨1点执行任务: {}", System.currentTimeMillis());
    }

    // 每天 22:23 执行任务
//            0：表示秒，这里表示在第0秒触发。
//            23：表示分钟，这里表示在第23分钟触发。
//            22：表示小时，这里表示在晚上22点（10 PM）触发。
//            *：表示每个月的每一天。
//            *：表示每个月。
//            ?：表示不指定某个特定的星期几（因为日和星期的组合不能同时指定）。
    @Scheduled(cron = "0 23 22 * * ?")
    public void performDailyTask2() {
        log.info("每天22:23执行任务: {}", System.currentTimeMillis());
    }

}
